package org.zjx.action;

import com.alibaba.fastjson2.annotation.JSONField;


public enum ActionType {
    // ================= 非战斗指令 =================
    /**
     * 移动指令 - 控制角色移动到指定坐标
     * 参数: targetX(目标X坐标), targetY(目标Y坐标)
     */
    MOVE("角色移动"),

    /**
     * NPC点击 - 与指定ID的NPC交互
     * 参数: npcId(NPC唯一ID)
     */
    NPC_CLICK("NPC交互"),

    /**
     * NPC对话 - 选择指定选项与NPC对话
     * 参数: npcId(NPC唯一ID), dialogOption(对话选项索引)
     */
    NPC_DIALOG("NPC对话"),

    /**
     * 使用道具 - 使用背包中的道具
     * 参数: itemId(道具ID), targetId(可选: 目标对象ID)
     */
    USE_ITEM("使用道具"),

    /**
     * 打开界面 - 打开指定类型的游戏界面
     * 参数: windowType(界面类型)
     */
    OPEN_WINDOW("打开界面"),

    /**
     * 制作物品 - 执行生活技能制作
     * 参数: recipeId(配方ID), count(制作数量)
     */
    CRAFT_ITEM("物品制作"),

    /**
     * 任务操作 - 接取/提交/追踪任务
     * 参数: questId(任务ID), actionType(操作类型)
     */
    QUEST_ACTION("任务操作"),

    /**
     * 交易操作 - 玩家交易相关
     * 参数: playerId(玩家ID), tradeType(交易类型)
     */
    PLAYER_TRADE("玩家交易"),

    /**
     * 摆摊操作 - 摆摊相关指令
     * 参数: stallAction(操作类型), itemId(道具ID)
     */
    STALL_ACTION("摆摊操作"),

    // ================= 战斗指令 =================
    /**
     * 使用技能 - 战斗中施放技能
     * 参数: skillId(技能ID), targetId(目标ID)
     */
    COMBAT_SKILL("战斗技能"),

    /**
     * 使用道具 - 战斗中使用道具
     * 参数: itemId(道具ID), targetId(目标ID)
     */
    COMBAT_ITEM("战斗道具"),

    /**
     * 防御指令 - 战斗中选择防御
     * 参数: position(战斗位置)
     */
    COMBAT_DEFEND("战斗防御"),

    /**
     * 捕捉指令 - 捕捉召唤兽
     * 参数: targetId(目标ID)
     */
    COMBAT_CAPTURE("捕捉召唤兽"),

    /**
     * 逃跑指令 - 尝试逃离战斗
     */
    COMBAT_ESCAPE("战斗逃跑"),

    /**
     * 召唤指令 - 召唤宠物参战
     * 参数: petId(宠物ID)
     */
    COMBAT_SUMMON("召唤宠物"),

    /**
     * 自动战斗 - 设置自动战斗模式
     * 参数: autoType(自动模式类型)
     */
    COMBAT_AUTO("自动战斗");

    private final String description;

    ActionType(String description) {
        this.description = description;
    }

    @JSONField(serialize = false)
    public String getDescription() {
        return description;
    }
}